具有多种类型的函数声明

Posted

技术标签:

【中文标题】具有多种类型的函数声明【英文标题】:Function declaration with multiple type 【发布时间】:2019-07-20 23:44:41 【问题描述】:

我有以下函数,它接受一个字符串并返回一个字符串,例如

mockingcase('foobar')
// => fOoBaR

该项目有一个 Typescript 声明文件。我对 Typescript 了解不多(除了阅读文档的最后一小时外,什么都不读。)

函数 mockingcase 现在可以从字符串数组中返回一个字符串

mockingcase(['foo','bar'])
// => 'fOoBaR'

如何更改 typescript 声明文件,使其可以接受字符串或数组?

原文:

function mockingcase(input: string, options?:  random?: boolean ): string;

我的想法:

function mockingcase(input: string|array, options?:  random?: boolean ): string;

我完全错了吗?

【问题讨论】:

function mockingcase(input: string|string[], options?: random?: boolean ): string 【参考方案1】:

你已经接近了 - 数组类型还必须定义数组中包含的对象的类型是什么:

input: string | string[]

或者:

input: string | Array<string>

【讨论】:

以上是关于具有多种类型的函数声明的主要内容,如果未能解决你的问题,请参考以下文章

go语言学习笔记 — 基础 — 函数:函数声明

如何声明具有在声明下方定义的类型的参数的函数?

是否有可能使函数接受给定参数的多种数据类型?

如何在 C# 中声明具有动态参数的函数 [重复]

返回类构造函数的函数的类型声明

JS函数类型