既然TypeScript包含了模板文字类型,那么如何断言字符串是全大写还是全小写呢?
T
回退到永远不会,所以当未指定时你可以得到一个马。然后有条件地返回,如果形参不是泛型实参的大写,则永远不返回。
const upperLog = <T extends string = never>(str: `${Uppercase<T>}`): `${Uppercase<T>}` => {
return <T extends string ? `${Uppercase<T>}` : never>str;
};
upperLog<"c">("C");