【发布时间】:2021-06-29 06:58:25
【问题描述】:
假设以下简化的 TypeScript sn-p:
interface MyInterface {
callbackLambda: (value: string) => void;
callbackFunction(value: string): void;
}
type MyType = "MyValue";
const myObject: MyInterface = {
callbackLambda: (value: MyType): void => {
console.log(value);
},
callbackFunction: (value: MyType): void => {
console.log(value);
}
};
myObject.callbackLambda("MyValue");
myObject.callbackFunction("MyValue");
此代码无法编译,因为 TypeScript 说:
Type '(value: MyType) => void' is not assignable to type '(value: string) => void'.
Types of parameters 'value' and 'value' are incompatible.
Type 'string' is not assignable to type '"MyValue"'.
所以,看起来函数定义编译得很好,但箭头函数定义却没有。
我在文档中找不到信息,我最初的想法是它应该可以正常编译。谁能解释(并找到相关文档)为什么在这种情况下函数定义编译得很好而不是箭头函数?
【问题讨论】:
标签: typescript