Como declarar um alias de tipo global no TypeScript?
Eu tenho um alias type ReactMouseEvent=React.MouseEvent<HTMLDivElement, MouseEvent>
Eu crio um globals.d.ts na pasta types do meu projeto:
// in globals.d.ts
import React = require('react')
declare type ReactMouseEvent = React.MouseEvent<HTMLDivElement, MouseEvent>
e configure typeRoots no tsconfig.json:
{
"compilerOptions": {
"typeRoots": [
"node_modules/@types",
"./types"
]
}
}
então eu tento este código:
public setPosition(ev: ReactMouseEvent) {
console.log(ev)
}
mas o VSCode ainda reclama sobre o nome ReactMouseEvent ausente. Como resolvo esse problema?
Atualização: Eu tentei outra maneira de definir o tipo em d.ts:
import React = require('react')
declare global {
type ReactMouseEvent = React.MouseEvent<HTMLDivElement, MouseEvent>
}
mas isso também não funciona :(
Resposta #1
Nos meus projetos, meus arquivos de declarações estão na raiz src/ (eu tenho: "include": ["./src/**/*"],) e funciona sem definir nenhuma opção typeRoots personalizada no tsconfig.json
Talvez você devesse verificar os outros campos do seu arquivo tsconfig? (certifique-se de incluir/não excluir o arquivo)