编译器配置项-compilerOptions
语言和环境相关配置03
JSX工厂函数 -jsxFactory
设置 jsxFactory
后,在jsx
配置项被设置为经典JSX运行时(即react
)时,修改 .js
文件中调用的函数。如果使用 preact
框架,最常见的值为 h
或者 preact.h
,以替代默认的 React.createElement
。
例如,以下 TSX 文件:
import { h } from "preact";
const HelloWorld = () => <div>Hello</div>;
如果TypeScript这样配置:jsxFactory: "h"
,那么将转换为如下的 .js
文件:
const preact_1 = require("preact");
const HelloWorld = () => (0, preact_1.h)("div", null, "Hello");
此选项也可以基于每个文件使用,与 Babel 的 /** @jsx h */
指令非常相似。
/** @jsx h */
import { h } from "preact";
Cannot find module 'preact' or its corresponding type declarations.
const HelloWorld = () => <div>Hello</div>;
工厂函数的选择也会影响查找命名空间的位置(用于类型检查信息),并且在回退到全局命名空间之前。
如果工厂定义为 React.createElement
(默认值),那么编译器将在查找全局 JSX
之前查找 React.JSX
。如果工厂定义为 h
,那么编译器将在查找全局 JSX
之前查找 h.JSX
。
网友评论