• 武瑶
    2020-02-09
    课程很赞,我是从后端转过来的!非常喜欢 TS.主要还是对 npm 包不够熟悉,希望老师能出一份常用包的教程!
    
    
  • 刘小宅
    2020-01-15
    老师我在项目中添加了ts类型检查, 碰到我使用table 标签并有属性cellpadding 发现报错代码如下:<div className="app-store-table">
                <table cellpadding="0" cellspacing="0">
                  <tr>
                    <th>賬號</th>
                    <th>密碼</th>
                  </tr>
                  <tr v-for="(item, index) in username">
                    <td></td>
                    <td></td>
                  </tr>
                </table>
              </div>
    报错如下: (property) JSX.IntrinsicElements.table: React.DetailedHTMLProps<React.TableHTMLAttributes<HTMLTableElement>, HTMLTableElement>
    不能将类型“{ children: Element[]; cellpadding: string; cellspacing: string; }”分配给类型“DetailedHTMLProps<TableHTMLAttributes<HTMLTableElement>, HTMLTableElement>”。
      类型“DetailedHTMLProps<TableHTMLAttributes<HTMLTableElement>, HTMLTableElement>”上不存在属性“cellpadding”

    疑问: 我该如何解决这个问题
    展开

    作者回复: 拼写错误,是cellPadding、cellSpacing

    
    
  • 陆 慢 慢
    2020-01-10
    老师,提个问题:
    用ts开发了一个纯js的库,打包成umd库发布npm的时候,是用webpack还是tsc?
    如果用webpack打包,是不是需要自己写声明文件;
    如果用tsc直接打包生成module: umd的库,在js文件中引用会报 Critical dependency: require function is used in a way in which dependencies cannot be statically extracted 这个错误。

    作者回复: 建议用webpack打包,声明文件可以通过declaration 选项生成,但最好还是在人工检查一下。

    
    
  • strive0212
    2019-11-21
    老师有没有用ts写的好一点的RN的项目地址,我参考参考

    作者回复: react-native-ui-kitten

    
    
  • strive0212
    2019-11-17
    fadeAnim : new Animated.Value(80)
    老师这个fadeAnim改定义成什么类型

    作者回复: 你是指RN中的Animated吧?有段时间没有使用过了,查了一下,声明文件还不支持,社区有一些此问题的讨论,希望能帮到你:
    https://github.com/DefinitelyTyped/DefinitelyTyped/issues/12202

    
    
  • 爱乐之城
    2019-11-15
    更正笔误,AddForm 改成 AddItem,ModifyForm 改成 ModifyItem,它们都共用 FormItem。
    
    
  • 爱乐之城
    2019-11-15
    老师好,我碰到一个项目中写 typescript 的问题,想请教下。我有一个组件 ItemForm,它可以在 AddForm,ModifyForm 组件中复用,这个组件接收两个参数 type(比如 add/modify),和 item。我现在的问题是,如果是 AddForm,就只需要传 type;ModifyForm 就传 type 和 item。我的 interface 该怎么写呢。我知道写成 { type: any; item?: any } 是可行的,可是这样的话我在 ModifyForm 中也没法提示必须传 item 参数了,在 ItemForm 中还要处理一堆 if (this.props.item) {} 的判断,要不然 TS 会报 item 可能是 undefined,如果它能知道在 type=modify 的时候 item 肯定存在就好了。
    有更好的定义写法吗?谢谢。

    作者回复: 可以把FormItem用高阶组件包装一下,增加一个item属性,给ModifyForm使用,type属性也不需要了。比如:

    const FormItem = () => <input />

    interface Item {
        value: string
    }

    function attachItem<P>(WrappedComponent: React.ComponentType<P>) {
        return class extends Component<P & Item> {
            render() {
                const { value, ...props } = this.props;
                return value ? <input value ={value} /> : <WrappedComponent { ...props as P } />;
            }
        }
    }
    const FormItemWrapped = attachItem(FormItem);

    class AddForm extends Component {
        render() {
            return <FormItem />
        }
    }

    class ModifyForm extends Component {
        render() {
            return <FormItemWrapped value='xxx' />
        }
    }

     2
    
  • 魔灵
    2019-11-06
    课程真的很不错 实战,基础都是超级好 值得学习
    
    
  • droden
    2019-10-11
    老师 把咱们上课的的源码下载下来了 打开里面竟然有报错 我想知道这种问题怎么解决,这个引发的原因是什么?是不是跟IDE的配置有关系?望赐教
    下面试代码合报错信息提示
    代码:
    ~~~
    // 函数
    let add = (x: number, y: number) => x + y
    let compute: (x: number, y: number) => number
    compute = (a, b) => a + b
    ~~~
    报错提示:
    ~~~
    let add: (x: number, y: number) => number
    无法重新声明块范围变量“add”。ts(2451)
    math.ts(1, 10): 'add' was also declared here.
    ~~~
    展开

    作者回复: ts-base这个工程包含很多节课的代码,报错都是变量重名问题。先只保留index.ts,要测试哪段代码就单独引入吧。

     1
    
  • 💪
    2019-09-29
    9.28号,在古北水镇看见你了

    作者回复: 哈哈 好巧

     2
    
  • 鲜于伯德
    2019-09-08
    老师, 那像装饰器这种特性在课程里面为什么没有讲解呢?是使用场景比较少吗?

    作者回复: 装饰器是ES的内容,并不是TS的特性,所以没有特别讲。

     1
    
  • 炼
    2019-08-29
    讲的很好,感谢老师!
    
    
  • Hurry
    2019-08-28
    本课程学到的最重要点应该是 建立类型思维
    
    
  • 许童童
    2019-08-28
    课程很不错,老师江湖再见。

    作者回复: 江湖再见^_^

    
    
我们在线,来聊聊吧