Контракти & Кодо...
Проблема TS
тут зообразити граф як приходять типи з АПІ та рухаються по функціям

Статичний опис типів


Статичний опис типів

Type Guards

Social-api-lib
188 типів
Runtime types
Title Text
CodeShift

CodeShift alg
import Http from './Http'
import { Autocomplete } from '../types'
class ApiAutocomplete {
getCountries(): Promise<Autocomplete.Res.AutocompCountries> {
return Http.post('autocomplete/all-countries')
}
}
import Http from './Http'
import { Autocomplete } from '../types'
type AutocompCountries = Autocomplete.Res.AutocompCountries
class ApiAutocomplete {
getCountries(): Promise<Autocomplete.Res.AutocompCountries> {
return Http.post('autocomplete/all-countries')
}
}ts-to-io
import * as t from "io-ts"
const AutocompCountries = t.array(t.type({
country_code: t.string,
id: t.number,
id_geoname: t.number,
text: t.string
}))
import Http from './Http'
import { Autocomplete } from '../types'
import report from '../reporter'
type AutocompCountries = Autocomplete.Res.AutocompCountries // сміття
class ApiAutocomplete {
getCountries(): Promise<Autocomplete.Res.AutocompCountries> {
return Http.post('autocomplete/all-countries')
.then((data) => {
import('../runtimeTypes/Autocomplete')
.then((t) => report(t.AutocompCountries, data))
return data
})
}
}
export default new ApiAutocomplete()
import Http from './Http'
import { Autocomplete } from '../types'
class ApiAutocomplete {
getCountries(): Promise<Autocomplete.Res.AutocompCountries> {
return Http.post('autocomplete/all-countries')
}
}
export default new ApiAutocomplete()
Контракти & Кодогенерація
By Kolya Koval
Контракти & Кодогенерація
- 301