add: tests for typescript_type attribute

This commit is contained in:
clearloop 2020-03-04 14:13:59 +08:00
parent 7a7b412bae
commit 84f5fe2c00
3 changed files with 47 additions and 0 deletions

View File

@ -5,4 +5,5 @@ pub mod opt_args_and_ret;
pub mod optional_fields;
pub mod simple_fn;
pub mod simple_struct;
pub mod typescript_type;
pub mod web_sys;

View File

@ -0,0 +1,37 @@
use wasm_bindgen::prelude::*;
#[wasm_bindgen(typescript_custom_section)]
const ITEXT_STYLE: &'static str = r#"
interface ITextStyle {
bold: boolean;
italic: boolean;
size: number;
}
"#;
#[wasm_bindgen]
extern "C" {
#[wasm_bindgen(typescript_type = "ITextStyle")]
pub type ITextStyle;
}
#[wasm_bindgen]
#[derive(Default)]
pub struct TextStyle {
pub bold: bool,
pub italic: bool,
pub size: i32,
}
#[wasm_bindgen]
impl TextStyle {
#[wasm_bindgen(constructor)]
pub fn new(_i: ITextStyle) {
// parse JsValue
}
pub fn optional_new(_i: Option<ITextStyle>) -> TextStyle {
// parse JsValueo
TextStyle::default()
}
}

View File

@ -0,0 +1,9 @@
import * as wbg from '../pkg/typescript_tests';
const style: wbg.TextStyle = new wbg.TextStyle({
bold: true,
italic: true,
size: 42,
});
const optional_style: wbg.TextStyle = wbg.TextStyle.optional_new();