Pesquisa de site

typescript - o pacote @types/dialogflow diz "dialogflow fornece suas próprias definições de tipo", mas parece que não


Estou usando o pacote dialogflow do npm, que é diferente do pacote actions-on-google ou googleapis.

O pacote dialogflow não tinha suas próprias definições de tipo. Portanto, eu estive usando o pacote @types/dialogflow junto.

Recentemente, o pacote de definição de tipos (@types/dialogflow) foi atualizado da versão v0.11.0 para v4.0.4, que é a versão mais recente agora, e o pacote diz que

Esta é uma definição de tipos stub. O dialogflow fornece suas próprias definições de tipos, então você não precisa instalar isso.

Mas o pacote npm do dialogflow não parece fornecer definições de tipo. O compilador TS continua dizendo

Não foi possível encontrar um arquivo de declaração para o módulo 'dialogflow'. '....js' possui implicitamente um tipo 'any'. Tente npm install @types/dialogflow se ele existir ou adicione um novo arquivo de declaração (.d.ts) contendo declare module 'dialogflow';ts(7016)

O que há de errado com este pacote de definição de tipo?

Resposta #1

Pelo que eu posso ver, o Dialogflow ainda não publicou seus tipos. Não há problema quanto a isso, eles nem estão listados neste ticket que acompanha as definições de tipo das APIs do Google. (referenciado daqui)

Este PR que descontinuou @types/dialogflow não adicionou nenhum link relevante para mostrar que eles foram incluídos nativamente.

Eu adicionaria a versão corrigida de @types/dialogflow no seu package.json enquanto isso

npm install @types/[email

Essa versão parece ser a última antes da descontinuação

Atualização

Outra opção de acordo com este PR é tentar importar desta maneira

import * as dialogflow from "dialogflow/protos/protos"

e verifique os tipos em dialogflow - talvez você precise fazer algum retrabalho

Resposta #2

Não tenho certeza, mas isso pode ajudar, mas se eu estiver usando um pacote que não tem definição de tipo, eu sempre uso a sintaxe de importação ES5 assim

const dialogflow = require('dialogflow');

Me avise se você tiver algum problema

Saúde.