//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的功能呢?如果不是最好的方式實現類似的..
不,在打字稿內聯函數的支持,你應該相信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