小编Kur*_*ton的帖子

将git merge驱动程序添加到存储库?

我正在创建一个合并驱动程序.我已经定义了一个.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配置选项)添加到存储库本身?

git merge git-merge git-config

16
推荐指数
1
解决办法
3280
查看次数

在 TypeScript 中推断泛型函数中的映射类型

这篇 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)

generics inference typing switch-statement typescript

6
推荐指数
1
解决办法
5130
查看次数

使用 vscode 导致“vscode-remote link”Windows 对话框重复显示

我使用 VSCode SSH 扩展远程访问我的台式计算机。上周我不得不在 Windows 计算机上重新安装 VSCode 的本地副本。从那时起,我不断收到以下提示。每当我的终端输出文件名或 URL 时,它似乎就会出现:

您需要一个新应用程序才能打开此 vscode-remote 链接 vscode-远程链接警告

我不知道如何防止出现此对话框,或者如何将 VSCode 关联为处理vscode-remote链接的默认应用程序。我不确定 VSCode 中是否有某些设置导致启动此对话框,或者应如何处理这些 URL。

visual-studio-code vscode-remote

5
推荐指数
1
解决办法
2172
查看次数

使用TypeScript和EventEmitter键入事件

我正在尝试使用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 eventemitter typescript

3
推荐指数
1
解决办法
1618
查看次数