JSX
是一种嵌入式的类似XML的语法,它可以被转换成合法的js,转换的语义是依据不同的实现而定的。JSX因React框架而流行,但也存在其它的实现。ts支持内嵌,类型检查以及将JSX直接编译为Js。
基本用法
使用JSX做两件事:
1.给文件一个.tsx扩展名
2.启用 . jsx选项
TS具有三种JSX模式:preserve,react和react-native。这些模型只在代码生成阶段作用,类型检查不受影响。在preserve模式下生成代码中会保留JSX以供后续的转换操作使用(比如:Babel)。 另外,输出文件会带有.jsx扩展名。 react模式会生成React.createElement,在使用前不需要再进行转换操作了,输出文件的扩展名为.js。 react-native相当于preserve,它也保留了所有的JSX,但是输出文件的扩展名是 .js。
你可以通过在命令行里使用—jsx标记或tsconfig.json里的选项来指定模式。
as操作符
var foo = <foo>bar
断言bar变量是foo类型。因为TS使用<>来表示断言,在结合JSX的语法后将带来解析上的困难。因此,TS在.tsx文件里禁用了使用尖括号的类型断言。
不能够在.tsx文件里使用上述语法。要想用使用另一个类型断言操作符:as。也比较容易改写:
var foo = bar as foo
as 操作符在.ts和.tsx里都可能,并且与尖括号类型断言行为是等价的。
