我是打字稿的新手,我正在尝试创建一个输入组件,如果它收到type="text"它呈现一个input,如果它收到type="textarea"它呈现,你得到它,一个textarea. 问题是,当我在代码上使用组件和 a 时,打字稿会抱怨onChange,似乎不允许我在同一个事件上使用两种类型?
它告诉我:
Type '(e: ChangeEvent<HTMLInputElement>) => void' is not assignable to type '(e?: ChangeEvent<HTMLInputElement> | ChangeEvent<HTMLTextAreaElement> | undefined) => void'.
Types of parameters 'e' and 'e' are incompatible.
Type 'ChangeEvent<HTMLInputElement> | ChangeEvent<HTMLTextAreaElement> | undefined' is not assignable to type 'ChangeEvent<HTMLInputElement>'.
Type 'undefined' is not assignable to type 'ChangeEvent<HTMLInputElement>'.
Run Code Online (Sandbox Code Playgroud)
输入.js
interface InputProps {
className?: string;
type?: string;
placeholder?: string;
onChange?: (e?: React.ChangeEvent<HTMLInputElement> | React.ChangeEvent<HTMLTextAreaElement>) => void;
}
const …Run Code Online (Sandbox Code Playgroud) 一些应用程序使用https://github.com/hyperrealm/libconfig来生成配置文件。我想知道是否有任何包装器或库或任何一般的方式可以parse/write这种来自磁盘的配置文件但使用 javascript。
我有问题的文件看起来像:
devices: (
{
name: "Mouse";
dpi: 1200;
buttons: (
{
cid: 0xc3;
action = {
type: "Click";
}
}
)
}
);
Run Code Online (Sandbox Code Playgroud)