javascript - Hur konverterar man en okänd typ till en sträng i TypeScript?
Jag arbetar med ett gränssnitt från en extern kodbit. Förenklat till minimum ser det ut så här:
interface Input {
details?: unknown;
}
Nu behöver jag mappa detta objekt till ett annat objekt med typ:
interface Output {
message?: string;
}
Så unknown måste kastas till en string. Mitt initiala tillvägagångssätt var helt enkelt att kalla input.details.toString(), men toString är inte tillgänglig eftersom unknown också kan vara null eller undefined.
Hur omvandlar jag Input till Output?
Svar #1
För att kasta unknown till string kan du använda en typeof-typvakt. Typen för ternära uttrycket nedan kommer att härledas som string | undefined:
const output: Output = {
message: typeof input.details === 'string'
? input.details
: undefined,
};
