TypeScript 5.1 发布了首个 Beta 测试版。
主要变化
旧代码
function foo() {
// no return
}
// x = undefined
let x = foo();
// fine - we inferred that 'f1' returns 'void'
function f1() {
// no returns
}
// fine – ‘void’ doesn’t need a return statement
function f2(): void {
// no returns
}
// fine – ‘any’ doesn’t need a return statement
function f3(): any {
// no returns
}
// error!
// A function whose declared type is neither ‘void’ nor ‘any’ must return a value.
function f4(): undefined {
// no returns
}
新代码
// Works in TypeScript 5.1!
function f4(): undefined {
// no returns
}
// Works in TypeScript 5.1!
takesFunction((): undefined => {
// no returns
});
// Works in TypeScript 5.1!
takesFunction(function f() {
// ^ return type is undefined
// no returns
});
// Works in TypeScript 5.1!
takesFunction(function f() {
// ^ return type is undefined
return;
});