0
私は現在、typescriptのより高度な型付けを取り回しており、ハイパースクリプトのような関数をどのように定義するのだろうと思っていました。私はさまざまなアプローチを試しましたが、h
関数にうまくオーバーロードできず、使用コメントの下にリストされているすべてのCallExpressionsを渡すことができません。ここでハイパースクリプト署名のためのTypeScript関数のオーバーロード
は、私がこれまで持っているものです。
interface IProps {
[key: string]: any;
}
function h(tag: string, props?: IProps): void;
function h(tag: string, children: string): void; // <- marked as invalid
function h(tag: string, props: IProps, children?: string): void {
// ...code goes here
}
は使用方法:
h("div");
h("div", "Hello World");
h("div", { className: "test" });
h("div", { className: "test" }, "Hello World"); // <- marked as invalid