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;
}); 
 
                            