Gostaria de saber como ficaria uma classe de serviço com typescript incluindo o resource.
Gostaria de saber como ficaria uma classe de serviço com typescript incluindo o resource.
Não entendi sua dúvida. TypeScript é um superset do JavaScript, então sua classe já esta adequada para TypeScript. Pode detalhar o que deseja?
Claro! Estou tentando realizar o mesmo que no explicado no vídeo em .ts Mas acredito que devo importar algum @type pois ele reclama em alguns pontos. Segue meu código:
export default class TesteService {
private _resource: any;
constructor(resource: any) {
this._resource = resource('api/teste/listar');
}
list() {
return this._resource
.query()
.then(res => res.json());
}
}
realizei a criação da propriedade _resource pois o mesmo estava reclamando no constructor. Mas ele também está reclamando no res, nessa parte do código: .then(res => res.json()); Como poderia resolver isso com uma prática boa?
Você esta integrando um projeto Vue.js com TypeScript? Isso só possível se sua versão for acima da 2.5.0 e ainda assim integração ainda é incompleta, pois não há uma solução definitiva. Talvez seja esse o seu problema.
E quando você diz que o código "reclama", onde está a mensagem de erro?
Você pode conferir isso no site deles:
Se você esta tendo muito erro de tipagem é porque deve ter ativado noExplicitAny
na sua configuração e isso o obrigará a tipar tudo, inclusive usando any quando não souber o tipo. Experimenta colocar false
.
Olá! Eu tipei o retorno do seu list() para Promise<any>
. Veja se isso ajuda:
export default class TesteService {
private _resource: any;
constructor(resource: any) {
this._resource = resource('api/teste/listar');
}
list(): Promise<any> {
return this._resource
.query()
.then(res => res.json());
}
}
Isso estou integrando em um projeto novo com Vue.js 2.5.11 A compilação está funcionando corretamente. Não sabia que ainda estava incompleta. Quando digo que ele reclama é porque no meu tsconfig.json estou adicionando a opção de compilação: noImplicityAny, então quando tento realizar o código da aula ele reclama em alguns pontos. Quando eu tento realizar o this._resource no constructor ele reclama do type então realizei a criação da propriedade: private _resource: any;isso resolveu este problema e gera também está gerando de forma correta o .js Mas no meu método list() quando eu tento realizar o .then(res => res.json()); ele reclama que não há nenhum tipo para o meu parametro res tentei realizar algo do tipo .then(res: any => res.json()) mas isso além de não me soar bem, não funciona. Existe alguma maneira de resolver este problema?
Excelente o Promise mas ele ainda continua dando erro no parâmetro res. Realmente se eu atribuir false para o noImplicityAny ele irá funcionar corretamente. Apenas acreditava que estava realizando de uma forma errada, e existia uma solução mais trivial.