函数类型别名的强制性参数

时间:2019-07-10 15:59:53

标签: typescript

我很难理解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'不能分配给'布尔'类型)。

0 个答案:

没有答案