Estou começando a usar o TypeScript em um projeto Node no qual estou trabalhando no Visual Studio Code. Eu queria seguir a estratégia "opt-in", semelhante ao Flow. Portanto, coloquei // @ts-check
no topo do meu .js
arquivo na esperança de habilitar o TS para esse arquivo. No final das contas, eu quero a mesma experiência de "linting" que o Flow, portanto instalei o plug-in TSLint para ver avisos / erros do Intellisense.
Mas com meu arquivo parecido com:
// @ts-check
module.exports = {
someMethod: (param: string): string => {
return param;
},
};
e meu tsconfig.json
arquivo se parece com ...
{
"compilerOptions": {
"target": "es2016",
"module": "commonjs",
"allowJs": true
}
}
Recebo este erro: [js] 'types' can only be used in a .ts file.
conforme mostrado abaixo na imagem.
Eu vi esta questão que recomendava desativar a validação de javascript no vscode, mas isso não me mostra nenhuma informação do TypeScript Intellisense.
Tentei definir tslint.jsEnable
como true
em minhas configurações de vscode, conforme mencionado nos documentos de extensão do TSLint, mas não tive sorte.
Qual é a configuração correta para usar .js
arquivos com TypeScript e obter o Intellisense para que eu saiba quais são os erros em meu código antes de executar qualquer comando TS?
.ts
me mostrar os erros / avisos de TS conforme o esperado. Eu acho que isso poderia funcionar, mas eu esperava mais do método opt-in usando@ts-check
ao mesmo tempo mantendo todas as minhas extensões como.js
Respostas:
Estou usando @flow com vscode, mas tive o mesmo problema.
fonte
"javascript.validate.enable": false
Use
"javascript.validate.enable": false
nas configurações do VS Code, ele não desativa o ESLINT. Eu uso ESLINT e Flow. Basta seguir as instruções de Fluxo para configuração do código VsAdicionando esta linha em settings.json. Ajuda
"javascript.validate.enable": false
fonte
Include Languages Enable Emmet abbreviations in languages that are not supported by default. Add a mapping here between the language and emmet supported language. E.g.: {"vue-html": "html", "javascript": "javascriptreact"}
clique em Editar no settings.json e acrescentar o seguinte:"javascript.validate.enable": false
.Você deve usar um
.ts
arquivo - por exemplo,test.ts
para obter avalidação do Typecript, intellisensetyping
de vars, tipos de retorno, bem como verificação de erro "digitada" (por exemplo, passar umstring
para um método que espera umnumber
parâmetro resultará em erro).Ele será transpilado para (padrão)
.js
viatsc
.Atualização (11/2018):
Esclarecimento necessário com base em votos negativos, comentários muito úteis e outras respostas.
types
Sim, você pode fazer o
type
check-in do VS Code em.js
arquivos com@ts-check
- como mostrado na animaçãoO que eu originalmente estava me referindo para o texto datilografado
types
é algo assim, no.ts
qual não é exatamente a mesma coisa:hello-world.ts
Isso não vai compilar.
Error: Type "1" is not assignable to String
se você tentou essa sintaxe em um arquivo Javascript
hello-world.js
:A mensagem de erro referenciada por OP é mostrada:
[js] 'types' can only be used in a .ts file
Se houver algo que perdi que cubra isso e também o contexto do OP, adicione. Vamos todos aprender.
fonte
.ts
. IINM, as amostras mostram verificação de erros e intellisense . O problema que você tem é (estático)type
ing suas variáveis, e de retornotypes
, bem como - por exemplofoo:string
,bar:number
,fubar:MyClass
,myMethod(f:Array):void
,anotherMethod():string
. Hth ...@ts-check
atributo. Muito enganador ...Pra quem pousar aqui e todas as outras soluções não funcionaram dá uma chance. Estou usando typescript + react e meu problema era que eu estava associando os arquivos em vscode para
javascriptreact
nãotypescriptreact
verificar suas configurações para as entradas a seguir.fonte