Ich möchte einige Zeichenketten externalisieren aber dennoch irgendeine Form der Zeichenkettensubstitution benutzen.Externalize Zeichenketten und verwenden Sie einen Formatierer, um Variablen in Zeichenkette zu ersetzen
In einigen meiner node
basierte Projekte habe ich verwendet:
var format = require('string-format');
format(Constants.COUNTRY_WEATHER_ENDPOINT, {
country: country
})
Allerdings In Typescript
, ich habe so etwas wie dies versucht ..
Fehler:
Cannot find name 'country'.at line 18 col 66 in repo/src/app/constants.ts
Constants.ts
export class Constants {
public static COUNTRY_WEATHER_ENDPOINT = `/api/country/${country}/weather`;
}
TestService.ts
import { Constants } from './constants';
export class TestService {
constructor(private $http) { }
public getWeather(country) {
let url = Constants.COUNTRY_WEATHER_ENDPOINT;
return this.$http.get(
url,
.then(response => response);
}
}
TestService.$inject = ['$http'];
eine Idee, wie man umgehen 'Parameter 'Land' implizit hat eine 'any' Art. Ohne alle vars am Anfang der Datei zu deklarieren – bobbyrne01
Ich habe das Beispiel geändert: Jetzt funktioniert es mit' noImplicitAny'. – ideaboxer
Sie können '{readonly [name: string]: (key: string) => string}' nehmen und es woanders als Typ definieren: z. 'type ConstantsType = {readonly [name: string]: (schlüssel: string) => string}'. Zum Beispiel in einer Datei, die Sie importieren können, wo immer Sie sie brauchen. Dann können Sie 'const Konstants: ConstantsType = {...}' schreiben – ideaboxer