Como você usaria o TypeScript para melhorar a digitação antecipada e a verificação de tipo para chamadas de função JQueryUI

StackOverflow https://stackoverflow.com//questions/12679888

  •  12-12-2019
  •  | 
  •  

Pergunta

Ao trabalhar com um widget jQuery UI, muitas vezes você acaba com algo que segue este padrão:

$("#someId").someWidget("option", "someOption", valor);

Existe uma boa maneira de modelar essa interação para obter alguma verificação de tipo útil do TypeScript?Tecnicamente você provavelmente tem o método definido assim:

algumWidget(opçãoLiteral:string, opçãoNome:string, optionValue:qualquer):JQuery;

(Modelado com base nas definições de tipo de UI jQuery fornecidas)

Portanto, o valor da opção é basicamente “qualquer”, independentemente do nome da opção.Existe uma maneira de sobrecarregar ainda mais a definição do tipo e talvez fazer alguma correspondência de padrões em optionName?Ou há planos para isso?

Foi útil?

Solução

Você pode querer se aprofundar no exemplo da UI do jQuery,

http://www.typescriptlang.org/Samples/#Warship

que aborda como estender o tipo de interface jQuery com métodos adicionais.

O tipo jQuery é um tipo de interface e os tipos de interface são abertos no TypeScript, o que significa que unidades de compilação posteriores podem adicionar membros ao tipo.Seu exemplo seria escrito como,

interface JQuery {
    someWidget(optionLiteral: string, optionName: string, optionValue: any): JQuery
}

Quanto à sobrecarga, os métodos podem ser sobrecarregados no tipo, mas não no valor.A sobrecarga de valores seria uma boa sugestão no site CodePlex.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top