简单的(无函数声明)TypeScript 表达式会自动成为有效的 JS 表达式吗?

问题描述 投票:0回答:1

TypeScript 代码需要转换为 JS。 但是表达式(即作为赋值右侧有效的任何内容)是否也需要转译?

显然,函数(带有类型装饰器)可以显示为表达式并需要转译:

const f = ():int => 42;

返回类型修饰是 TS 特定的,并使表达式

():int => 42
成为无效的 JS 表达式。

我的问题更具体针对返回原始类型的表达式。再说一遍,我可以将 TS 函数嵌入到表达式中只是为了好玩,但这显然不符合 JS 要求:

const x = (():int => 42)();

如果表达式是“运算符、文字和变量的简单序列”,没有任何函数声明偏差,是否可以出现 TS 扩展?

PS。有些表达式需要函数,例如。

somearray.map((x:int)=>x+1)
并且表达式是 TS 而不是 JS,但这又是因为函数类型装饰器发挥了作用。我正在寻找不涉及函数、lambda 和相关类型修饰的示例。

javascript typescript
1个回答
0
投票

没有

(s as unknown as string).toUpperCase()
n!.toFixed(4)
f<number>()

在 TypeScript 中都是有效的表达式,但对于 JavaScript 无效。

一般来说,使用类型不需要函数定义。

© www.soinside.com 2019 - 2024. All rights reserved.