我正在创建一个合并驱动程序.我已经定义了一个.gitattributes文件,如下所示:
filename merge=mergeStrategy
我在$ PROJECT/.git/config中创建了合并驱动程序,如下所示:
[merge "mergeStrategy"]
name = My merge strategy
driver = scripts/mergeScript.sh
Run Code Online (Sandbox Code Playgroud)
这在本地工作正常,但我想将此合并驱动程序提交到git存储库,以便合并策略对每个人都有效.
有没有办法可以将此(或其他Git配置选项)添加到存储库本身?
以这篇 StackOverflow 文章为例,我实现了一个类型化事件系统。简化后,它看起来像:
interface MyTypeMap {
FOO: string;
BAR: number;
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用此地图创建一个事件处理程序:
function handleEvent<T extends keyof MyTypeMap>(eventKey: T, eventMsg: MyTypeMap[T]) {
switch(eventKey) {
case('FOO'):
// TS believes that eventKey is of type 'never'
// TS believes that eventMsg is 'string|number'
break;
case('BAR'):
// TS believes that eventKey is of type 'never'
// TS believes that eventMsg is 'string|number'
break;
}
}
Run Code Online (Sandbox Code Playgroud)
当外部调用此函数时,TypeScript 的行为与预期一致。例如:
// These work as desired
handleEvent('FOO', 'asdf');
handleEvent('BAR', 5);
// These throw compile errors as …Run Code Online (Sandbox Code Playgroud) 我使用 VSCode SSH 扩展远程访问我的台式计算机。上周我不得不在 Windows 计算机上重新安装 VSCode 的本地副本。从那时起,我不断收到以下提示。每当我的终端输出文件名或 URL 时,它似乎就会出现:
我不知道如何防止出现此对话框,或者如何将 VSCode 关联为处理vscode-remote链接的默认应用程序。我不确定 VSCode 中是否有某些设置导致启动此对话框,或者应如何处理这些 URL。
我正在尝试使用TypeScript将强类型事件添加到类似EventEmitter的系统中.
目前,我们定义了以下类型:
interface TypedMsg<Name, T> {
messageType: Name;
message: T;
}
type TypedMsgFoo = TypedMsg<'FOO', string>;
type TypedMsgBar = TypedMsg<'BAR', number>;
type EitherFooOrBar = TypedMsgFoo | TypedMsgBar;
Run Code Online (Sandbox Code Playgroud)
我想定义一个界面,如:
interface EventHandler<T extends TypedMsg<any, any> {
on: (messageType: T.messageType, handler: (T.message) => void) => void;
}
Run Code Online (Sandbox Code Playgroud)
但是Typescript不支持提取类似的子类型T.messageType.还有另一种方法吗?
最终目标是通过以下方式定义具有正确输入的处理程序:
class FooBarHandler implements EventHandler<EitherFooOrBar> {
on(messageType: EitherFooOrBar.messageType) {...}
}
Run Code Online (Sandbox Code Playgroud) generics ×2
typescript ×2
eventemitter ×1
git ×1
git-config ×1
git-merge ×1
inference ×1
merge ×1
typing ×1