mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Add support for StringLiteralTypeAnnotation (#46827)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/46827 You can now define a native module that takes an argument that is a specific string literal: Like this: ``` export interface Spec extends TurboModule { +passString: (arg: string) => void; +passStringLiteral: (arg: 'A String Literal') => void; } ``` On the native side, this will still generate `string`, but the schema will now store the string literal, and it will be allowed in JS. This should allow more strict flow / typescript types for modules. This will also allow the compatibility check to fail if the literal changes. This is a step towards accepting a union of string literals. Changelog: [General][Added] Codegen for Native Modules now supports string literals Reviewed By: GijsWeterings Differential Revision: D63872440 fbshipit-source-id: e54b97d34af4a3d1af51727db0777f26fb7b778c
This commit is contained in:
committed by
Facebook GitHub Bot
parent
73ce1984e8
commit
d2f3f06826
@@ -161,6 +161,8 @@ function serializeArg(
|
||||
}
|
||||
case 'StringTypeAnnotation':
|
||||
return wrap(val => `${val}.asString(rt)`);
|
||||
case 'StringLiteralTypeAnnotation':
|
||||
return wrap(val => `${val}.asString(rt)`);
|
||||
case 'BooleanTypeAnnotation':
|
||||
return wrap(val => `${val}.asBool()`);
|
||||
case 'EnumDeclaration':
|
||||
|
||||
Reference in New Issue
Block a user