我知道这是一个对象的类型,哪些键是两个字符串'foo'
和'bar'
,值是两个函数(虽然我觉得语法很奇怪):
type Func0 = {
foo(number) : number,
bar(string) : string
};
例如:
const f: Func0 = {
foo: x => 2*x,
bar: x => `hello ${x}`
};
但这是什么类型的?具有两个函数作为值的对象的类型?如果是这样,关键是什么?
type Func1 = {
(number) : number,
(string) : string
}
答案 0 :(得分:1)
是的,这是具有两个可能的严格结果的可调用对象。 Repro示例 - try flow。
简而言之,
type fn = {
(number): number,
(string): string
}
伪码中的是:
type fn =
(number) => number
OR
(string) => string
这样:
fn(number): number
fn(string): string
使用默认函数声明时,您不能保持参数类型和返回类型之间的关系:
type fn = (number | string) => number | string
伪码中的是:
type fn = (number OR string) => number OR string
这样:
fn(number): number | string
fn(string): number | string