打字稿编译器是否有@inline功能选项?
问题描述:
//ts code
function div(props?: { id?: String; style?: any }) {
return function(...children: ReactNode[]) {
return createElement("div", props, ...children);
};
}
const d = div({ id: "hello" })("welcome to TS");
生成的JS代码打字稿编译器是否有@inline功能选项?
function div(props) {
return function() {
var children = [];
for (var _i = 0; _i < arguments.length; _i++) {
children[_i] = arguments[_i];
}
return createElement("div",props,...);
};
}
var d = div({ id: "hello" })("welcome to TS");
//努力实现
var d = createElement("div",{ id: "hello" },"welcome to TS")
确实打字稿支持@inline的功能呢?如果不是最好的方式实现类似的..
答
不打字支持@inline函数吗?
号
如果不是最新最好的方式实现类似
你将不得不自己编写的工具。我只是不担心它。
使刀具自己
使用打字稿编译器找到您要内联函数的引用,然后函数体插值到那个位置。
开始:一些编译器文档https://basarat.gitbooks.io/typescript/content/docs/compiler/overview.html
不,在打字稿内联函数的支持,你应该相信JS运行时做了优化,或手编代码你想要的方式。 –
要添加到以前的评论,请阅读[“JavaScript引擎中的自动内联”](https://ariya.io/2013/04/automatic-inlining-in-javascript-engines)---如果您的代码是如果您希望手动优化这些细节,您应该查看WASM(WebAssembly),这正是它的一个用例([Youtube:Dan Callahan:实用WebAssembly | JSConf布达佩斯2017年](https://www.youtube。 com/watch?v = bac0dGQbUto) - 跳过第15分钟)。 –
感谢您的信息:) – invariant