我很难理解TypeScript中类型检查的范围。
在TypeScript中规定函数签名的正确方法是什么?
请参见以下代码:
type MyFunctionTypeVoid = (param1:string) => void;
type MyFunctionTypeBool = (param1:string) => boolean;
const f1:MyFunctionTypeVoid = ()=>{
return true;
}
const f2:MyFunctionTypeBool = ()=>{
}
问题1: 当我声明一个函数的类型别名时,TypeScript不会检查使用类型别名时是否提供了参数。 (例如:f1和f2)
问题2: 如果类型别名的返回值为void,则使用类型别名的函数可以返回任何内容。 (例如:f1)
预期行为:
我希望intellisense / compliler告知f1缺少参数和错误的返回值,以及f2缺少参数和错误的返回值。
实际行为:
f1没有智能/编译错误。
f2仅具有错误的返回值(类型'void'不能分配给'布尔'类型)。